//
//  HSScoreController.swift
//  HomeSchoolDemo
//
//  Created by rimi on 16/9/26.
//  Copyright © 2016年 赖虹宇. All rights reserved.
//

import UIKit
//通知该刷新的闭包
typealias scoresCallBack = (_ error : Error? , _ isRearsh : Bool) -> ()
class HSScoreController: UITableViewController {
    
    //模型数组
    var scoreModelArr : [HSScoreViewModel] = []
  
    
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor().colorWithHex(0xf0f0f0)
       //设置分割线颜色
        tableView.separatorColor = UIColor().colorWithHex(0xcccccc)
        //设置一个预估高度
//        tableView.estimatedRowHeight = 150
//        tableView.rowHeight = 150
        //注册原形cell
        tableView.register(HSScoreCell.self, forCellReuseIdentifier: "scoreCell")
        loadData()
        


        
    }
    
    //获取数据
    func loadData(){

            //获取接口地址
            let url = "ZH-schoolname-S-getExamScore"
            //参数设置
            let key = userInfo["key"] as! String
            //        let id = userInfo["id"]
            let parame = ["key":key,"id":"0"]
            HSNetwordTools.shared.downloadData(urlStr: url, parameters: parame) { [weak self] (data, error) in
                guard let data = data as? NSDictionary else{
                    HSAlertView.bottomAlertView("网络无连接，请检查网络")
                    return
                }
                //打印数据
                //            print(data["data"])
                switch data["result"] as! Int {
                case 0 :
                    //获取字典数组
                    let dictArray = data["data"] as! [[String : Any]]//多一层括号是变成 数组字典
                    //创建一个可变数组来保存模型
                    var modelArray : [HSScoreViewModel] = []
                    //遍历取出模型
                    for dict in dictArray  {
                        let model = HSScoreModel(dict: dict)
                        modelArray.append(HSScoreViewModel(model: model))
                    }
                    //赋值给数组
                    self?.scoreModelArr = modelArray
                    //刷新视图
                    self?.tableView.reloadData()
                case 1 :
                    HSAlertView.bottomAlertView("已经没有更早的数据了")
                    //网络正常，但是数据加载失败，通知控制器不需要刷新视图
                default:
                    break
                }
            }
    }
  

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return scoreModelArr.count
    }


    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
       
        let cell = tableView.dequeueReusableCell(withIdentifier: "scoreCell", for: indexPath) as! HSScoreCell
        //设置选中状态
        cell.selectionStyle = .none
        //赋值
        let model = scoreModelArr[indexPath.row]
        
        cell.scoreVM = model

        return cell
    }
    //选中当前cell的代理方法
    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
      if  scoreModelArr[indexPath.row].scoreM.isHiden == true {
            scoreModelArr[indexPath.row].scoreM.isHiden = false
            scoreModelArr[indexPath.row].isShowT = false
      }else{
        scoreModelArr[indexPath.row].scoreM.isHiden = true
        scoreModelArr[indexPath.row].isShowT = true
        }


        tableView.reloadRows(at: [indexPath], with: .automatic)
   }
    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        //获得对应的模型视图
        let scoreMV = scoreModelArr[indexPath.row]
        //返回计算好的高度
        return scoreMV.cellHight

    }

}
